[INFO] cloning repository https://github.com/oberblastmeister/monkey_rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/oberblastmeister/monkey_rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Foberblastmeister%2Fmonkey_rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Foberblastmeister%2Fmonkey_rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 6d6890f3345a486a6868b92d45db9b03b13fc3ef
[INFO] building oberblastmeister/monkey_rust against master#881c1ac408d93bb7adaa3a51dabab9266e82eee8 for issue-85264
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Foberblastmeister%2Fmonkey_rust" "/workspace/builds/worker-14/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-14/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/oberblastmeister/monkey_rust on toolchain 881c1ac408d93bb7adaa3a51dabab9266e82eee8
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+881c1ac408d93bb7adaa3a51dabab9266e82eee8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/oberblastmeister/monkey_rust
[INFO] finished tweaking git repo https://github.com/oberblastmeister/monkey_rust
[INFO] tweaked toml for git repo https://github.com/oberblastmeister/monkey_rust written to /workspace/builds/worker-14/source/Cargo.toml
[INFO] crate git repo https://github.com/oberblastmeister/monkey_rust already has a lockfile, it will not be regenerated
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+881c1ac408d93bb7adaa3a51dabab9266e82eee8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded os_str_bytes v2.3.2
[INFO] [stderr]   Downloaded env_logger v0.8.1
[INFO] [stderr]   Downloaded humantime v2.0.1
[INFO] [stderr]   Downloaded trybuild v1.0.35
[INFO] [stderr]   Downloaded dissimilar v1.0.2
[INFO] [stderr]   Downloaded nix v0.18.0
[INFO] [stderr]   Downloaded dirs-sys-next v0.1.0
[INFO] [stderr]   Downloaded dirs-next v1.0.1
[INFO] [stderr]   Downloaded utf8parse v0.2.0
[INFO] [stderr]   Downloaded rustyline v6.3.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+881c1ac408d93bb7adaa3a51dabab9266e82eee8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 54c806a7044eb64f750e1baf5149fd8030f8e57d1909f89eccc03655a84b8f48
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "54c806a7044eb64f750e1baf5149fd8030f8e57d1909f89eccc03655a84b8f48", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "54c806a7044eb64f750e1baf5149fd8030f8e57d1909f89eccc03655a84b8f48", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "54c806a7044eb64f750e1baf5149fd8030f8e57d1909f89eccc03655a84b8f48", kill_on_drop: false }`
[INFO] [stdout] 54c806a7044eb64f750e1baf5149fd8030f8e57d1909f89eccc03655a84b8f48
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+881c1ac408d93bb7adaa3a51dabab9266e82eee8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 0f85dab35e18c74da60103fb5b57117a9383ed6a770ebfb5407fd38af5fab05d
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "0f85dab35e18c74da60103fb5b57117a9383ed6a770ebfb5407fd38af5fab05d", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]    Compiling libc v0.2.79
[INFO] [stderr]    Compiling syn v1.0.48
[INFO] [stderr]    Compiling termcolor v1.1.0
[INFO] [stderr]    Compiling quick-error v1.2.3
[INFO] [stderr]    Compiling humantime v2.0.1
[INFO] [stderr]    Compiling strsim v0.10.0
[INFO] [stderr]    Compiling utf8parse v0.2.0
[INFO] [stderr]    Compiling os_str_bytes v2.3.2
[INFO] [stderr]    Compiling indexmap v1.6.0
[INFO] [stderr]    Compiling crossbeam-utils v0.7.2
[INFO] [stderr]    Compiling textwrap v0.12.1
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]    Compiling humantime v1.3.0
[INFO] [stderr]    Compiling atty v0.2.14
[INFO] [stderr]    Compiling dirs-sys-next v0.1.0
[INFO] [stderr]    Compiling nix v0.18.0
[INFO] [stderr]    Compiling env_logger v0.8.1
[INFO] [stderr]    Compiling env_logger v0.7.1
[INFO] [stderr]    Compiling dirs-next v1.0.1
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling thiserror-impl v1.0.22
[INFO] [stderr]    Compiling clap_derive v3.0.0-beta.2
[INFO] [stderr]    Compiling rustyline v6.3.0
[INFO] [stderr]    Compiling thiserror v1.0.22
[INFO] [stderr]    Compiling monkey v0.1.0 (/opt/rustwide/workdir/crates/monkey)
[INFO] [stdout] warning: unused import: `crate::lexer::Token`
[INFO] [stdout]  --> crates/monkey/src/parser/parse_error.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::lexer::Token;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Accept`
[INFO] [stdout]  --> crates/monkey/src/parser/parser.rs:3:21
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::common::{Accept, Peekable};
[INFO] [stdout]   |                     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `*`
[INFO] [stdout]  --> crates/monkey/src/parser/parser.rs:5:33
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::lexer::Token::{self, *};
[INFO] [stdout]   |                                 ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Accept`
[INFO] [stdout]  --> crates/monkey/src/lexer/advanced_chars.rs:1:21
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::common::{Accept, AdvancedIter, Peekable};
[INFO] [stdout]   |                     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Illegal` is named the same as one of the variants of the type `Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:67:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ^^^^^^^ help: to match on the variant, qualify the path: `Token::Illegal`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(bindings_with_variant_name)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Assign` is named the same as one of the variants of the type `Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:69:13
[INFO] [stdout]    |
[INFO] [stdout] 69 |             Assign => "=",
[INFO] [stdout]    |             ^^^^^^ help: to match on the variant, qualify the path: `Token::Assign`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Plus` is named the same as one of the variants of the type `Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |             Plus => "+",
[INFO] [stdout]    |             ^^^^ help: to match on the variant, qualify the path: `Token::Plus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Minus` is named the same as one of the variants of the type `Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:71:13
[INFO] [stdout]    |
[INFO] [stdout] 71 |             Minus => "-",
[INFO] [stdout]    |             ^^^^^ help: to match on the variant, qualify the path: `Token::Minus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Bang` is named the same as one of the variants of the type `Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:72:13
[INFO] [stdout]    |
[INFO] [stdout] 72 |             Bang => "!",
[INFO] [stdout]    |             ^^^^ help: to match on the variant, qualify the path: `Token::Bang`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Asterisk` is named the same as one of the variants of the type `Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:73:13
[INFO] [stdout]    |
[INFO] [stdout] 73 |             Asterisk => "*",
[INFO] [stdout]    |             ^^^^^^^^ help: to match on the variant, qualify the path: `Token::Asterisk`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Slash` is named the same as one of the variants of the type `Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:74:13
[INFO] [stdout]    |
[INFO] [stdout] 74 |             Slash => "/",
[INFO] [stdout]    |             ^^^^^ help: to match on the variant, qualify the path: `Token::Slash`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Lt` is named the same as one of the variants of the type `Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:75:13
[INFO] [stdout]    |
[INFO] [stdout] 75 |             Lt => "<",
[INFO] [stdout]    |             ^^ help: to match on the variant, qualify the path: `Token::Lt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Gt` is named the same as one of the variants of the type `Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:76:13
[INFO] [stdout]    |
[INFO] [stdout] 76 |             Gt => ">",
[INFO] [stdout]    |             ^^ help: to match on the variant, qualify the path: `Token::Gt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `LtEq` is named the same as one of the variants of the type `Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:77:13
[INFO] [stdout]    |
[INFO] [stdout] 77 |             LtEq => "<=",
[INFO] [stdout]    |             ^^^^ help: to match on the variant, qualify the path: `Token::LtEq`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `GtEq` is named the same as one of the variants of the type `Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:78:13
[INFO] [stdout]    |
[INFO] [stdout] 78 |             GtEq => ">=",
[INFO] [stdout]    |             ^^^^ help: to match on the variant, qualify the path: `Token::GtEq`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Comma` is named the same as one of the variants of the type `Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:80:13
[INFO] [stdout]    |
[INFO] [stdout] 80 |             Comma => ",",
[INFO] [stdout]    |             ^^^^^ help: to match on the variant, qualify the path: `Token::Comma`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Semicolon` is named the same as one of the variants of the type `Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:81:13
[INFO] [stdout]    |
[INFO] [stdout] 81 |             Semicolon => ";",
[INFO] [stdout]    |             ^^^^^^^^^ help: to match on the variant, qualify the path: `Token::Semicolon`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Lparen` is named the same as one of the variants of the type `Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:83:13
[INFO] [stdout]    |
[INFO] [stdout] 83 |             Lparen => "(",
[INFO] [stdout]    |             ^^^^^^ help: to match on the variant, qualify the path: `Token::Lparen`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Rparen` is named the same as one of the variants of the type `Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:84:13
[INFO] [stdout]    |
[INFO] [stdout] 84 |             Rparen => ")",
[INFO] [stdout]    |             ^^^^^^ help: to match on the variant, qualify the path: `Token::Rparen`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Lbrace` is named the same as one of the variants of the type `Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:85:13
[INFO] [stdout]    |
[INFO] [stdout] 85 |             Lbrace => "{",
[INFO] [stdout]    |             ^^^^^^ help: to match on the variant, qualify the path: `Token::Lbrace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Rbrace` is named the same as one of the variants of the type `Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:86:13
[INFO] [stdout]    |
[INFO] [stdout] 86 |             Rbrace => "}",
[INFO] [stdout]    |             ^^^^^^ help: to match on the variant, qualify the path: `Token::Rbrace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Function` is named the same as one of the variants of the type `Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:89:13
[INFO] [stdout]    |
[INFO] [stdout] 89 |             Function => "fn",
[INFO] [stdout]    |             ^^^^^^^^ help: to match on the variant, qualify the path: `Token::Function`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Let` is named the same as one of the variants of the type `Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:90:13
[INFO] [stdout]    |
[INFO] [stdout] 90 |             Let => "let",
[INFO] [stdout]    |             ^^^ help: to match on the variant, qualify the path: `Token::Let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `True` is named the same as one of the variants of the type `Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:91:13
[INFO] [stdout]    |
[INFO] [stdout] 91 |             True => "true",
[INFO] [stdout]    |             ^^^^ help: to match on the variant, qualify the path: `Token::True`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `False` is named the same as one of the variants of the type `Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:92:13
[INFO] [stdout]    |
[INFO] [stdout] 92 |             False => "false",
[INFO] [stdout]    |             ^^^^^ help: to match on the variant, qualify the path: `Token::False`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `If` is named the same as one of the variants of the type `Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:93:13
[INFO] [stdout]    |
[INFO] [stdout] 93 |             If => "if",
[INFO] [stdout]    |             ^^ help: to match on the variant, qualify the path: `Token::If`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Else` is named the same as one of the variants of the type `Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:94:13
[INFO] [stdout]    |
[INFO] [stdout] 94 |             Else => "else",
[INFO] [stdout]    |             ^^^^ help: to match on the variant, qualify the path: `Token::Else`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Return` is named the same as one of the variants of the type `Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:95:13
[INFO] [stdout]    |
[INFO] [stdout] 95 |             Return => "return",
[INFO] [stdout]    |             ^^^^^^ help: to match on the variant, qualify the path: `Token::Return`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Eq` is named the same as one of the variants of the type `Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:97:13
[INFO] [stdout]    |
[INFO] [stdout] 97 |             Eq => "==",
[INFO] [stdout]    |             ^^ help: to match on the variant, qualify the path: `Token::Eq`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `NotEq` is named the same as one of the variants of the type `Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:98:13
[INFO] [stdout]    |
[INFO] [stdout] 98 |             NotEq => "!=",
[INFO] [stdout]    |             ^^^^^ help: to match on the variant, qualify the path: `Token::NotEq`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:69:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ------- matches any value
[INFO] [stdout] 68 | 
[INFO] [stdout] 69 |             Assign => "=",
[INFO] [stdout]    |             ^^^^^^ unreachable pattern
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 70 |             Plus => "+",
[INFO] [stdout]    |             ^^^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:71:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 71 |             Minus => "-",
[INFO] [stdout]    |             ^^^^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:72:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 72 |             Bang => "!",
[INFO] [stdout]    |             ^^^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:73:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 73 |             Asterisk => "*",
[INFO] [stdout]    |             ^^^^^^^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:74:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 74 |             Slash => "/",
[INFO] [stdout]    |             ^^^^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:75:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 75 |             Lt => "<",
[INFO] [stdout]    |             ^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:76:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 76 |             Gt => ">",
[INFO] [stdout]    |             ^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:77:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 77 |             LtEq => "<=",
[INFO] [stdout]    |             ^^^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:78:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 78 |             GtEq => ">=",
[INFO] [stdout]    |             ^^^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:80:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 80 |             Comma => ",",
[INFO] [stdout]    |             ^^^^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:81:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 81 |             Semicolon => ";",
[INFO] [stdout]    |             ^^^^^^^^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:83:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 83 |             Lparen => "(",
[INFO] [stdout]    |             ^^^^^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:84:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 84 |             Rparen => ")",
[INFO] [stdout]    |             ^^^^^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:85:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 85 |             Lbrace => "{",
[INFO] [stdout]    |             ^^^^^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:86:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 86 |             Rbrace => "}",
[INFO] [stdout]    |             ^^^^^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:89:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 89 |             Function => "fn",
[INFO] [stdout]    |             ^^^^^^^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:90:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 90 |             Let => "let",
[INFO] [stdout]    |             ^^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:91:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 91 |             True => "true",
[INFO] [stdout]    |             ^^^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:92:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 92 |             False => "false",
[INFO] [stdout]    |             ^^^^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:93:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 93 |             If => "if",
[INFO] [stdout]    |             ^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:94:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 94 |             Else => "else",
[INFO] [stdout]    |             ^^^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:95:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 95 |             Return => "return",
[INFO] [stdout]    |             ^^^^^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:97:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 97 |             Eq => "==",
[INFO] [stdout]    |             ^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:98:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 98 |             NotEq => "!=",
[INFO] [stdout]    |             ^^^^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> crates/monkey/src/lexer/tokens.rs:100:13
[INFO] [stdout]     |
[INFO] [stdout] 67  |             Illegal => "ILLEGAL",
[INFO] [stdout]     |             ------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 100 |             _ => return Err(*self),
[INFO] [stdout]     |             ^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> crates/monkey/src/ast/expr.rs:40:85
[INFO] [stdout]    |
[INFO] [stdout] 40 |             Token::Number(n) => Expression::NumberLiteral(n.parse::<i64>().map_err(|e| ParseError::BadNumber)?),
[INFO] [stdout]    |                                                                                     ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `Custom`
[INFO] [stdout]  --> crates/monkey/src/parser/parse_error.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 |     Custom(&'static str),
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `NoSemicolon`
[INFO] [stdout]   --> crates/monkey/src/parser/parse_error.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     NoSemicolon,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `BadPrefixOperator`
[INFO] [stdout]   --> crates/monkey/src/parser/parse_error.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | /     BadPrefixOperator {
[INFO] [stdout] 22 | |         op: String,
[INFO] [stdout] 23 | |     },
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `BadPostfixOperator`
[INFO] [stdout]   --> crates/monkey/src/parser/parse_error.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | /     BadPostfixOperator {
[INFO] [stdout] 27 | |         op: String
[INFO] [stdout] 28 | |     },
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `ExpectedSemicolon`
[INFO] [stdout]   --> crates/monkey/src/parser/parse_error.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | /     ExpectedSemicolon {
[INFO] [stdout] 32 | |         got: String,
[INFO] [stdout] 33 | |     },
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `parse`
[INFO] [stdout]   --> crates/monkey/src/parser/parser.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn parse(s: &str) -> ParseResult<ast::Program<'_>> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `new`
[INFO] [stdout]   --> crates/monkey/src/parser/parser.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub fn new(input: &'input str) -> Parser<'input> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `expect_or`
[INFO] [stdout]   --> crates/monkey/src/parser/parser.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub fn expect_or(&mut self, expected: Token<'_>, err: ParseError) -> ParseResult<()> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `curr_token_or_err`
[INFO] [stdout]   --> crates/monkey/src/parser/parser.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 |     pub fn curr_token_or_err(&self) -> Result<Token<'input>, ParseError> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `new`
[INFO] [stdout]   --> crates/monkey/src/lexer/advanced_chars.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn new(input: &str) -> AdvancedChars<'_> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `peek_pos`
[INFO] [stdout]   --> crates/monkey/src/lexer/advanced_chars.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub fn peek_pos(&self) -> Option<usize> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `current_pos`
[INFO] [stdout]   --> crates/monkey/src/lexer/advanced_chars.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn current_pos(&self) -> Option<usize> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `current_pos_or_end`
[INFO] [stdout]   --> crates/monkey/src/lexer/advanced_chars.rs:51:12
[INFO] [stdout]    |
[INFO] [stdout] 51 |     pub fn current_pos_or_end(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `len`
[INFO] [stdout]   --> crates/monkey/src/lexer/advanced_chars.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 55 |     pub fn len(&self) -> usize {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `new`
[INFO] [stdout]   --> crates/monkey/src/lexer/mod.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub fn new(input: &str) -> Lexer<'_> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct is never constructed: `LexerSender`
[INFO] [stdout]    --> crates/monkey/src/lexer/mod.rs:207:12
[INFO] [stdout]     |
[INFO] [stdout] 207 | pub struct LexerSender<'input> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `new`
[INFO] [stdout]    --> crates/monkey/src/lexer/mod.rs:213:8
[INFO] [stdout]     |
[INFO] [stdout] 213 |     fn new(input: &'input str, sender: Sender<Option<Token<'input>>>) -> LexerSender<'input> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `send`
[INFO] [stdout]    --> crates/monkey/src/lexer/mod.rs:222:8
[INFO] [stdout]     |
[INFO] [stdout] 222 |     fn send(self) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `new`
[INFO] [stdout]    --> crates/monkey/src/lexer/mod.rs:236:8
[INFO] [stdout]     |
[INFO] [stdout] 236 |     fn new(receiver: Receiver<Option<Token<'input>>>) -> LexerReceiver<'input> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `lexer_channel`
[INFO] [stdout]    --> crates/monkey/src/lexer/mod.rs:262:8
[INFO] [stdout]     |
[INFO] [stdout] 262 | pub fn lexer_channel(input: &str) -> (LexerSender, LexerReceiver) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `curr_token`
[INFO] [stdout]    --> crates/monkey/src/lexer/mod.rs:271:5
[INFO] [stdout]     |
[INFO] [stdout] 271 |     curr_token: Option<Token<'input>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `new`
[INFO] [stdout]    --> crates/monkey/src/lexer/mod.rs:275:12
[INFO] [stdout]     |
[INFO] [stdout] 275 |     pub fn new(input: &str) -> AdvancedLexer<'_> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `curr_token`
[INFO] [stdout]    --> crates/monkey/src/lexer/mod.rs:284:12
[INFO] [stdout]     |
[INFO] [stdout] 284 |     pub fn curr_token(&self) -> Option<Token<'input>> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `new`
[INFO] [stdout]   --> crates/monkey/src/common/mod.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub fn new(mut iter: T) -> AdvancedIter<T> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `peek_pos`
[INFO] [stdout]   --> crates/monkey/src/common/mod.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub fn peek_pos(&self) -> Option<usize> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `current_pos`
[INFO] [stdout]   --> crates/monkey/src/common/mod.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn current_pos(&self) -> Option<usize> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `peek_item`
[INFO] [stdout]   --> crates/monkey/src/common/mod.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn peek_item(&self) -> Option<&<Self as Iterator>::Item> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `Phantom`
[INFO] [stdout]   --> crates/monkey/src/ast/expr.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     Phantom(std::marker::PhantomData<&'a str>),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `Let`
[INFO] [stdout]   --> crates/monkey/src/ast/stmt.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | /     Let {
[INFO] [stdout] 11 | |         ident: Token<'a>,
[INFO] [stdout] 12 | |         value: Expression<'a>,
[INFO] [stdout] 13 | |     },
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `Return`
[INFO] [stdout]   --> crates/monkey/src/ast/stmt.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     Return(Expression<'a>),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Illegal` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:67:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `illegal`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Assign` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:69:13
[INFO] [stdout]    |
[INFO] [stdout] 69 |             Assign => "=",
[INFO] [stdout]    |             ^^^^^^ help: convert the identifier to snake case: `assign`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Plus` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |             Plus => "+",
[INFO] [stdout]    |             ^^^^ help: convert the identifier to snake case: `plus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Minus` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:71:13
[INFO] [stdout]    |
[INFO] [stdout] 71 |             Minus => "-",
[INFO] [stdout]    |             ^^^^^ help: convert the identifier to snake case: `minus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Bang` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:72:13
[INFO] [stdout]    |
[INFO] [stdout] 72 |             Bang => "!",
[INFO] [stdout]    |             ^^^^ help: convert the identifier to snake case: `bang`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Asterisk` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:73:13
[INFO] [stdout]    |
[INFO] [stdout] 73 |             Asterisk => "*",
[INFO] [stdout]    |             ^^^^^^^^ help: convert the identifier to snake case: `asterisk`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Slash` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:74:13
[INFO] [stdout]    |
[INFO] [stdout] 74 |             Slash => "/",
[INFO] [stdout]    |             ^^^^^ help: convert the identifier to snake case (notice the capitalization): `slash`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Lt` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:75:13
[INFO] [stdout]    |
[INFO] [stdout] 75 |             Lt => "<",
[INFO] [stdout]    |             ^^ help: convert the identifier to snake case: `lt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Gt` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:76:13
[INFO] [stdout]    |
[INFO] [stdout] 76 |             Gt => ">",
[INFO] [stdout]    |             ^^ help: convert the identifier to snake case: `gt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `LtEq` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:77:13
[INFO] [stdout]    |
[INFO] [stdout] 77 |             LtEq => "<=",
[INFO] [stdout]    |             ^^^^ help: convert the identifier to snake case: `lt_eq`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `GtEq` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:78:13
[INFO] [stdout]    |
[INFO] [stdout] 78 |             GtEq => ">=",
[INFO] [stdout]    |             ^^^^ help: convert the identifier to snake case: `gt_eq`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Comma` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:80:13
[INFO] [stdout]    |
[INFO] [stdout] 80 |             Comma => ",",
[INFO] [stdout]    |             ^^^^^ help: convert the identifier to snake case (notice the capitalization): `comma`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Semicolon` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:81:13
[INFO] [stdout]    |
[INFO] [stdout] 81 |             Semicolon => ";",
[INFO] [stdout]    |             ^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `semicolon`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Lparen` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:83:13
[INFO] [stdout]    |
[INFO] [stdout] 83 |             Lparen => "(",
[INFO] [stdout]    |             ^^^^^^ help: convert the identifier to snake case: `lparen`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Rparen` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:84:13
[INFO] [stdout]    |
[INFO] [stdout] 84 |             Rparen => ")",
[INFO] [stdout]    |             ^^^^^^ help: convert the identifier to snake case: `rparen`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Lbrace` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:85:13
[INFO] [stdout]    |
[INFO] [stdout] 85 |             Lbrace => "{",
[INFO] [stdout]    |             ^^^^^^ help: convert the identifier to snake case: `lbrace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Rbrace` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:86:13
[INFO] [stdout]    |
[INFO] [stdout] 86 |             Rbrace => "}",
[INFO] [stdout]    |             ^^^^^^ help: convert the identifier to snake case: `rbrace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Function` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:89:13
[INFO] [stdout]    |
[INFO] [stdout] 89 |             Function => "fn",
[INFO] [stdout]    |             ^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `function`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Let` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:90:13
[INFO] [stdout]    |
[INFO] [stdout] 90 |             Let => "let",
[INFO] [stdout]    |             ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: rename the identifier or convert it to a snake case raw identifier
[INFO] [stdout]    |
[INFO] [stdout] 90 |             r#let => "let",
[INFO] [stdout]    |             ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `True` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:91:13
[INFO] [stdout]    |
[INFO] [stdout] 91 |             True => "true",
[INFO] [stdout]    |             ^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: rename the identifier or convert it to a snake case raw identifier
[INFO] [stdout]    |
[INFO] [stdout] 91 |             r#true => "true",
[INFO] [stdout]    |             ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `False` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:92:13
[INFO] [stdout]    |
[INFO] [stdout] 92 |             False => "false",
[INFO] [stdout]    |             ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: rename the identifier or convert it to a snake case raw identifier
[INFO] [stdout]    |
[INFO] [stdout] 92 |             r#false => "false",
[INFO] [stdout]    |             ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `If` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:93:13
[INFO] [stdout]    |
[INFO] [stdout] 93 |             If => "if",
[INFO] [stdout]    |             ^^
[INFO] [stdout]    |
[INFO] [stdout] help: rename the identifier or convert it to a snake case raw identifier
[INFO] [stdout]    |
[INFO] [stdout] 93 |             r#if => "if",
[INFO] [stdout]    |             ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Else` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:94:13
[INFO] [stdout]    |
[INFO] [stdout] 94 |             Else => "else",
[INFO] [stdout]    |             ^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: rename the identifier or convert it to a snake case raw identifier
[INFO] [stdout]    |
[INFO] [stdout] 94 |             r#else => "else",
[INFO] [stdout]    |             ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Return` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:95:13
[INFO] [stdout]    |
[INFO] [stdout] 95 |             Return => "return",
[INFO] [stdout]    |             ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: rename the identifier or convert it to a snake case raw identifier
[INFO] [stdout]    |
[INFO] [stdout] 95 |             r#return => "return",
[INFO] [stdout]    |             ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Eq` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:97:13
[INFO] [stdout]    |
[INFO] [stdout] 97 |             Eq => "==",
[INFO] [stdout]    |             ^^ help: convert the identifier to snake case: `eq`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `NotEq` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:98:13
[INFO] [stdout]    |
[INFO] [stdout] 98 |             NotEq => "!=",
[INFO] [stdout]    |             ^^^^^ help: convert the identifier to snake case: `not_eq`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling clap v3.0.0-beta.2
[INFO] [stdout] warning: 113 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0170`.
[INFO] [stdout] 
[INFO] [stderr]    Compiling monkey_rust v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0603]: module `lexer` is private
[INFO] [stdout]  --> crates/monkey-cli/main.rs:7:13
[INFO] [stdout]   |
[INFO] [stdout] 7 | use monkey::lexer::Lexer;
[INFO] [stdout]   |             ^^^^^ private module
[INFO] [stdout]   |
[INFO] [stdout] note: the module `lexer` is defined here
[INFO] [stdout]  --> /opt/rustwide/workdir/crates/monkey/src/lib.rs:2:1
[INFO] [stdout]   |
[INFO] [stdout] 2 | mod lexer;
[INFO] [stdout]   | ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::mpsc::channel`
[INFO] [stdout]  --> crates/monkey-cli/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::sync::mpsc::channel;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crossbeam_utils::thread`
[INFO] [stdout]  --> crates/monkey-cli/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crossbeam_utils::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to previous error; 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0603`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `monkey_rust`
[INFO] [stderr] 
[INFO] [stderr] To learn more, run the command again with --verbose.
[INFO] running `Command { std: "docker" "inspect" "0f85dab35e18c74da60103fb5b57117a9383ed6a770ebfb5407fd38af5fab05d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0f85dab35e18c74da60103fb5b57117a9383ed6a770ebfb5407fd38af5fab05d", kill_on_drop: false }`
[INFO] [stdout] 0f85dab35e18c74da60103fb5b57117a9383ed6a770ebfb5407fd38af5fab05d
